/* 
* Ext JS Library 2.2 
* Copyright(c) 2006-2008, Ext JS, LLC. 
* licensing@extjs.com 
* 
* http://extjs.com/license 
* Ext.onReady(function(){
          new Ext.TabPanel({
            renderTo : document.body,
            region:'fit',
            deferredRender:false,
            activeTab:0,
            resizeTabs:true, // turn on tab resizing
            minTabWidth: 115,
            tabWidth:135,
            enableTabScroll:true,
            items:[{title:"title1",id:'tab1',closable:true},{title:"title2",id:'tab2',closable:true},{title:"title3",id:'tab3',closable:true}],
            plugins: new Ext.ux.TabCloseMenu()
         });
});

*/ 

// Very simple plugin for adding a close context menu to tabs 

Ext.ux.TabCloseMenu = function(){ 
    var tabs, menu, ctxItem; 
    var aa=0;
    this.init = function(tp){ 
        tabs = tp; 
        tabs.on('contextmenu', onContextMenu); 
        
         //双击最大化，最小化
		//index_center__1d99accd-a128-48c7-8f25-2018a9a3a2cc_TabPanel
		tabs.on('add',function(tabs,item){
	        //alert(tabs.getId()+tabs.idDelimiter+item.getId());
	        var li=Ext.fly(tabs.getId()+tabs.idDelimiter+item.getId());
	        if(!li){
	        	return;
	        }
	        li.on("dblclick",function(e,htmlElement,o){handleMaxMin(tabs);});
		});
			
    } 

    function onContextMenu(ts, item, e){ 
        if(!menu){ // create context menu on first right click 
            menu = new Ext.menu.Menu([         
            { 
                id: tabs.id + '-refresh', 
                text: '刷新', 
                handler : function(){ 
                     if(item){ 
                        var id_iframe=ctxItem.id+"_iframe";
                        Ext.get(id_iframe).dom.src=ctxItem.url;
                      } //
                } 
            },
            { 
                id: tabs.id + '-max', 
                text: max_state?'最大化':'还原', 
                handler : function(button, e){ 
                    // handleMaxMin(e,ts,item,button);
                	handleMaxMin(ts);
                } 
            },
            { 
                id: tabs.id + '-close', 
                text: '关闭标签', 
                handler : function(){ 
                    tabs.remove(ctxItem); 
                } 
            },{ 
                id: tabs.id + '-close-others', 
                text: '关闭其他标签', 
                handler : function(){ 
                    tabs.items.each(function(item){ 
                        if(item.closable && item != ctxItem){ 
                            tabs.remove(item); 
                        } 
                    }); 
                } 
            },{ 
                id: tabs.id + '-close-all', 
                text: '关闭全部标签', 
                handler : function(){ 
                    tabs.items.each(function(item){ 
                        if(item.closable){ 
                            tabs.remove(item); 
                        } 
                    }); 
                } 
            }]); 
        } 
        ctxItem = item; 
        var items = menu.items; 
        items.get(tabs.id + '-close').setDisabled(!item.closable); 
        var disableOthers = true; 
        tabs.items.each(function(){ 
            if(this != item && this.closable){ 
                disableOthers = false; 
                return false; 
            } 
        }); 
        items.get(tabs.id + '-close-others').setDisabled(disableOthers); 
        var disableAll = true; 
        tabs.items.each(function(){ 
        	
        	//this.on("dbclick",function(){alert(111)});
        	
            if(this.closable){ 
                disableAll = false; 
                return false; 
            } 
        }); 
        items.get(tabs.id + '-close-all').setDisabled(disableAll); 
        menu.showAt(e.getPoint()); 
    } 
}; 

var max_state=true;
function handleMaxMin(tabs){
//alert(11);
	var index_viewport=Ext.getCmp("index_viewport");
	
	var index_north=Ext.getCmp("index_north");
	var index_south=Ext.getCmp("index_south");
	var index_west=Ext.getCmp("index_west");
	//alert(Ext.getCmp(tabs.id + '-max'));
	if(max_state){
		index_north.hide();
		index_south.hide();
		index_west.hide();
		max_state=false;
		if(Ext.getCmp(tabs.id + '-max')){
			Ext.getCmp(tabs.id + '-max').setText('还原');
		}
	} else {
		index_north.show();
		index_south.show();
		index_west.show();
		max_state=true;
		
		if(Ext.getCmp(tabs.id + '-max')){
			Ext.getCmp(tabs.id + '-max').setText('最大化');
		}
	}

	index_viewport.doLayout();
}
// function handleMaximize(event, toolEl, panel){
//         panel.originalOwnerCt = panel.ownerCt;
//        panel.originalPosition = panel.ownerCt.items.indexOf(panel);
//        panel.originalSize=panel.getSize();
//
//        if (!toolEl.window) {
//            var defaultConfig = {
//                id: (panel.getId() + '-MAX'),
//                width: (Ext.getBody().getSize().width - 100),
//                height: (Ext.getBody().getSize().height - 100),
//                resizable: true,
//                draggable: true,
//                closable: true,
//                closeAction: 'hide',
//                hideBorders: true,
//                plain: true,
//                layout: 'fit',
//                autoScroll: false,
//                border: false,
//                bodyBorder: false,
//                frame: true,
//                pinned: true,
//                bodyStyle: 'background-color: #ffffff;'
//            };
//            toolEl.window = new Ext.Window(defaultConfig);
//            toolEl.window.on('hide', handleMinimize, panel);
//
//        }
//        //alert(panel.dummyComponent);
//        if (!panel.dummyComponent) {
//            var dummyCompConfig = {
//                title: panel.title,
//                width: panel.getSize().width,
//                height: panel.getSize().height,
//                html: '&nbsp;'
//            };
//            panel.dummyComponent = new Ext.Panel(dummyCompConfig);
//        }
//        
//        toolEl.window.add(panel);
//
//
//        panel.originalOwnerCt.insert(panel.originalPosition, panel.dummyComponent);//插进一个假的页面
//        panel.originalOwnerCt.doLayout();
//        panel.dummyComponent.setSize(panel.originalSize);
//        panel.dummyComponent.setVisible(true);
//        panel.dummyComponent.getEl().mask('');
//        toolEl.window.show(this);
//        //alert(toolEl.window.id);
//
//    };
//	function handleMinimize(window) {
//        this.dummyComponent.getEl().unmask();
//        this.dummyComponent.setVisible(false);
//        this.originalOwnerCt.insert(this.originalPosition, this);
//        this.originalOwnerCt.doLayout(); 
//        this.setSize(this.originalSize);
//
//        this.dummyComponent.destroy();
//        this.dummyComponent=null;//如果不设为null，就会报错
//        
//        this.originalOwnerCt.setActiveTab(this.id);
//    }
